home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cocktail
/
puma.lha
/
puma
/
ffaba-m
/
ffaba.puma
< prev
next >
Wrap
Text File
|
1992-09-25
|
883b
|
45 lines
TRAFO Compiler TREE ProTest PUBLIC goal
EXTERN CloseIO HeapUsed StdOutput WriteI WriteNl
GLOBAL {
FROM ProTest IMPORT tProTest, HeapUsed;
FROM IO IMPORT StdOutput, WriteI, WriteNl, CloseIO;
}
PROCEDURE goal ()
? p (prog (f (f (a, b), a)) => R1);
p (R1 => R2);
p (R2 => R3);
p (R3 => R4);
p (R4 => R5);
WriteI (StdOutput, HeapUsed, 0); WriteNl (StdOutput);
q (q (q (q (q (prog (f (f (a, b), a))))))) # NIL;
WriteI (StdOutput, HeapUsed, 0); WriteNl (StdOutput); CloseIO ();
.
PROCEDURE p (prog => prog)
prog (I) => prog (S) ? e (I, I => S); .
PROCEDURE e (E, E => E)
f (E1, E2) , I => f (E1S, E2S) ? e (E1, I => E1S); e (E2, I => E2S); .
n:b , _ => n ?.
_ , I => I ?.
FUNCTION q (prog) prog
prog (I) RETURN prog (g (I, I)) ?.
FUNCTION g (E, E) E
f (E1, E2) , I RETURN f (g (E1, I), g (E2, I)) ?.
n:b , _ RETURN n ?.
_ , I RETURN I ?.